/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package biblioteca;

/**
 *
 * @author haperlin
 */
public class Aluno extends Usuario {
    private Livro livro1;

    private Revista revista1;

    private CD cd1;

    private Jornal jornal1;

    public boolean emprestaMaterial(Material m){
        boolean ret = false;
        if(m instanceof Livro){
            ret = emprestaLivro((Livro)m); //casting
        }else  if(m instanceof Revista){
            ret = emprestaRevista((Revista)m); //casting
        }else  if(m instanceof Jornal){
            ret = emprestaJornal((Jornal)m); //casting
        }else  if(m instanceof CD){
            ret = emprestaCD((CD)m); //casting
        }
        return ret;
    }

    public boolean devolveMaterial(Material m){
        boolean ret = false;
        if(m instanceof Livro){
            ret = devolveLivro((Livro)m); //casting
        }else  if(m instanceof Revista){
            ret = devolveRevista((Revista)m); //casting
        }else  if(m instanceof Jornal){
            ret = devolveJornal((Jornal)m); //casting
        }else  if(m instanceof CD){
            ret = devolveCD((CD)m); //casting
        }
        return ret;
    }


    private boolean emprestaLivro(Livro l){
        if(livro1 == null)
            livro1 = l;
        else
            return false;

        return true;
    }

    private boolean devolveLivro(Livro l){
        if(livro1 == l)
            livro1 = null;
        else
            return false;

        return true;
    }

    private boolean emprestaRevista(Revista l){
        if(revista1 == null)
            revista1 = l;
        else
            return false;

        return true;
    }

    private boolean devolveRevista(Revista l){
        if(revista1 == l)
            revista1 = null;
        else
            return false;

        return true;
    }

    private boolean emprestaJornal(Jornal l){
        if(jornal1 == null)
            jornal1 = l;
        else
            return false;

        return true;
    }

    private boolean devolveJornal(Jornal l){
        if(jornal1 == l)
            jornal1 = null;
        else
            return false;

        return true;
    }

    private boolean emprestaCD(CD l){
        if(cd1 == null)
            cd1 = l;
        else
            return false;

        return true;
    }

    private boolean devolveCD(CD l){
        if(cd1 == l)
            cd1 = null;
        else
            return false;

        return true;
    }

    public String imprime(){
        String str;
        str="Codigo:"+cod+" Nome: "+nome+"\n Emprestimos:\n";
        if(livro1 != null)
            str = str + livro1.imprime();
        if(revista1 != null)
            str = str + revista1.imprime();
        if(jornal1 != null)
            str = str + jornal1.imprime();
        if(cd1 != null)
            str = str+cd1.imprime();

        str = str + "************";
        return str;
    }
}
